Modern computer based information processing systems transmit and process data according to a variety of protocols, languages, and formats. As different languages employ different constructs and representation properties, application developers typically select a language for a particular task in order to exploit the capabilities of the particular language in a manner well suited to the task at hand. Further, the languages each impose particular processing constraints, typically in the form of an executable object or component, which executes or performs on a particular computer to receive and process data in the protocol, language, or format in which the component is conversant.
Accordingly, when a computer receives a message in a particular protocol, language, or format, it typically requires a component conversant in that protocol, language, or format in order to process and respond to the message. Therefore, it is beneficial for an individual computer system, or node, to have the capability to execute many components for the protocols, languages, and formats for which it may receive data. However, each component entails certain overhead encumbrances in the way of memory, disk storage, and processing demands. Accordingly, it is typically infeasible, undesirable, or expensive to equip a node to handle most all different protocols, languages, and formats.
Further, many conventional applications employ subcomponents in the form of plug-ins, libraries, directories, and other forms. These additional components are typically user selectable depending on the needs of the context in which the user invokes the application. For example, a typical conventional word processing program uses a common installation screen sequence. Part of the screen sequence includes options such as dictionaries for spelling check functions and foreign language support. Affirmative acknowledgement causes the installation to install additional components to support spelling and foreign languages. However, electing not to install such additional components, nonetheless, allows the application to process documents accordingly. The omitted components only affect operation if an attempt is made to invoke them.
Therefore, efficient node deployment suggests configuring nodes with the capability to handle expected protocols, languages, and formats which the node expects to encounter. For example, it is inefficient to install a spreadsheet application, or a second word processing application, on a PC for which the user will not be likely to use. Conversely, it is inefficient to omit an application, such as a slide viewer, which the user then needs to find and install in response to an email attachment. In particular, certain specialized and/or mobile computerized equipment imposes greater restrictions on available resources. Equipment such as laptop computers, Personal Digital Assistants (PDAs), and wireless phones need to streamline demand on available processing resources. In such an environment, tradeoffs of performance and flexibility typically dictate an optimal component set for configuration of such devices. Such an optimal component or protocol processing set may not be robust enough to handle all message types.